import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

class Mapa {
    private Map<Territorio, List<Territorio>> territorios;
    
    Mapa() {
        this.territorios = new HashMap<Territorio, List<Territorio>>();
    }
    
    Mapa(Map<Territorio, List<Territorio>> territorios) {
        this.territorios = territorios;
    }
    
    public Mapa adicionar(Territorio territorio, List<Territorio> fronteiras) {
        this.territorios.put(territorio, fronteiras);
        return this;
    }

    public Territorio buscarPeloID(int id) {
        for (Territorio territorio : this.territorios.keySet()) {
            if (territorio.getId() == id)
                return territorio;
        }
        return null;
    }
    
    public Territorio buscarPeloNome(String nome) {
        for (Territorio territorio : this.territorios.keySet()) {
            if (territorio.getNome() == nome)
                return territorio;
        }
        return null;
    }
    
    public boolean temFronteira(Territorio t1, Territorio t2) {
        return this.territorios.get(t1).contains(t2);
    }
    
    public Map<Territorio, List<Territorio>> getTerritorios() {
        return this.territorios;
    }
    
    public String toString() {
        return this.territorios.keySet().toString();
    }
}